Completed
Push — master ( 48f710...e5ef2e )
by Alejandro
11s
created

ShlinkApiClientBuilder.test.js ➔ ???   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 17
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 24
rs 9.55
1
import buildShlinkApiClient from '../../../src/utils/services/ShlinkApiClientBuilder';
2
3
describe('ShlinkApiClientBuilder', () => {
4
  const createBuilder = () => {
5
    const builder = buildShlinkApiClient({});
6
7
    return (selectedServer) => builder(() => ({ selectedServer }));
8
  };
9
10
  it('creates new instances when provided params are different', async () => {
11
    const builder = createBuilder();
12
    const [ firstApiClient, secondApiClient, thirdApiClient ] = await Promise.all([
13
      builder({ url: 'foo', apiKey: 'bar' }),
14
      builder({ url: 'bar', apiKey: 'bar' }),
15
      builder({ url: 'bar', apiKey: 'foo' }),
16
    ]);
17
18
    expect(firstApiClient).not.toBe(secondApiClient);
19
    expect(firstApiClient).not.toBe(thirdApiClient);
20
    expect(secondApiClient).not.toBe(thirdApiClient);
21
  });
22
23
  it('returns existing instances when provided params are the same', async () => {
24
    const builder = createBuilder();
25
    const selectedServer = { url: 'foo', apiKey: 'bar' };
26
    const [ firstApiClient, secondApiClient, thirdApiClient ] = await Promise.all([
27
      builder(selectedServer),
28
      builder(selectedServer),
29
      builder(selectedServer),
30
    ]);
31
32
    expect(firstApiClient).toBe(secondApiClient);
33
    expect(firstApiClient).toBe(thirdApiClient);
34
    expect(secondApiClient).toBe(thirdApiClient);
35
  });
36
});
37